package com.touchstone.cloudpacs.service;

import com.github.pagehelper.PageInfo;
import com.touchstone.cloudpacs.common.utils.request.PageRequest;
import com.touchstone.cloudpacs.entity.User;
import com.touchstone.cloudpacs.request.UserRequest;
import com.touchstone.cloudpacs.request.query.UserPageQuery;
import com.touchstone.cloudpacs.vo.UserPageVO;

/**
 * @Description : 用户操作业务接口
 * @Author : hunter
 * @Date: 2019-07-11 23:26
 * @Version: 1.0
 **/
public interface IUserService {

    /**
     * 新增用户
     *
     * @param userRequest 新增用户的参数
     * @return User 新增后的用户信息
     * @author hunter
     * @date 2019/7/12 0012 13:50
     **/
    User save(UserRequest userRequest);

    /**
     * 更新用户信息
     *
     * @param userRequest 用户信息
     * @return User 修改后的用户信息
     * @author hunter
     * @date 2019/7/12 0012 13:51
     **/
    User update(UserRequest userRequest);

    /**
     * 禁用用户
     *
     * @param id 所要修改状态用户的ID
     * @return
     * @author hunter
     * @date 2019/7/12 0012 13:51
     **/
    int disabled(String id);

    /**
     * 启用用户
     *
     * @param id 所要修改状态用户的ID
     * @return
     * @author hunter
     * @date 2019/7/12 0012 13:51
     **/
    int enable(String id);

    /**
     * 查询单条用户信息
     *
     * @param id 用户ID
     * @return
     * @author hunter
     * @date 2019/7/12 0012 13:52
     **/
    User get(String id);

    /**
     * 分页查询用户信息
     *
     * @param pageRequest 分页查询条件
     * @return PageInfo<UserPageVO>
     * @author hunter
     * @date 2019/7/12 0012 13:52
     **/
    PageInfo<UserPageVO> selectByPage(PageRequest<UserPageQuery> pageRequest);

    /**
     * 登录
     *
     * @param userName 用户名
     * @param password 密码
     * @author hunter
     * @date 2019/7/12 0012 13:53
     **/
    void login(String userName, String password);

    /**
     * 注销登录
     *
     * @param
     * @author hunter
     * @date 2019/7/12 0012 13:54
     **/
    void logout();
}
